[INFO] fetching crate crsh 0.0.1...
[INFO] fixing crsh-0.0.1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate crsh 0.0.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate crsh 0.0.1
[INFO] finished tweaking crates.io crate crsh 0.0.1
[INFO] tweaked toml for crates.io crate crsh 0.0.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate crsh 0.0.1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate crsh 0.0.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d
[INFO] running `Command { std: "docker" "start" "b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling proc-macro2 v1.0.85
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]    Compiling crsh v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.1
[INFO] [stderr]     Checking vte v0.11.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking os_pipe v1.2.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking strip-ansi-escapes v0.2.0
[INFO] [stderr]    Compiling logos-codegen v0.14.0
[INFO] [stderr]    Compiling logos-derive v0.14.0
[INFO] [stderr]     Checking logos v0.14.0
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shell/builtin/cd.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             env::set_var("OLDPWD", &sh.env.pwd);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]    = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]    |
[INFO] [stdout] 79 +             // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 80 ~             unsafe { env::set_var("OLDPWD", &sh.env.pwd) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/shell/execution.rs:27:32
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut io = match ctx {
[INFO] [stdout]    |             ------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `io` calls a custom destructor
[INFO] [stdout]    |             `io` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 27 |         if let Some(builder) = Self::get_builtin_builder(keyword) {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 67 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `io` invokes this custom destructor
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]   --> src/shell/execution.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if let Some(builder) = Self::get_builtin_builder(keyword) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^----------------------------------
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]    |
[INFO] [stdout]    = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]   --> src/shell/execution.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         } else if self.find_on_path(keyword).is_some() {
[INFO] [stdout]    |         ^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]    = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         match Self::get_builtin_builder(keyword) { Some(builder) => {
[INFO] [stdout] 28 |             match builder(args) {
[INFO] [stdout] ...
[INFO] [stdout] 34 |             }
[INFO] [stdout] 35 ~         } _ => if self.find_on_path(keyword).is_some() {
[INFO] [stdout] 36 |             let args = args.iter().map(|s| s.to_string()).collect::<Vec<_>>();
[INFO] [stdout] ...
[INFO] [stdout] 65 |             -1
[INFO] [stdout] 66 ~         }}
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, &'s str, Token<'s>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^
[INFO] [stdout]   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]   = warning: this changes meaning in Rust 2024
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]   = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]   = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos + use<'s>)]
[INFO] [stdout]   |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, &'s str, Token<'s>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^
[INFO] [stdout]   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]   = warning: this changes meaning in Rust 2024
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]   = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos + use<'s>)]
[INFO] [stdout]   |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `crsh`
[INFO] [stderr]  --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lexer.rs
[INFO] [stderr]  ::: src/shell.rs
[INFO] [stderr]  ::: src/shell/execution.rs
[INFO] [stderr]  ::: src/shell/parsing.rs
[INFO] [stderr]   = cause: error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]             --> src/shell/parsing.rs:5:36
[INFO] [stderr]              |
[INFO] [stderr]            5 | #[derive(Debug, Copy, Clone, Logos + use<'s>)]
[INFO] [stderr]              |                                    ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]             --> src/shell/parsing.rs:6:3
[INFO] [stderr]              |
[INFO] [stderr]            6 | #[logos(skip r"\s+")]
[INFO] [stderr]              |   ^^^^^
[INFO] [stderr]              |
[INFO] [stderr]              = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]              |
[INFO] [stderr]            7 + #[derive(Logos)]
[INFO] [stderr]            8 | enum Token<'a> {
[INFO] [stderr]              |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]             --> src/shell/parsing.rs:8:7
[INFO] [stderr]              |
[INFO] [stderr]            8 |     #[token("|", priority = 10)]
[INFO] [stderr]              |       ^^^^^
[INFO] [stderr]              |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]              |
[INFO] [stderr]            7 + #[derive(Logos)]
[INFO] [stderr]            8 | enum Token<'a> {
[INFO] [stderr]              |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:11:7
[INFO] [stderr]               |
[INFO] [stderr]            11 |     #[token("||", priority = 10)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:14:7
[INFO] [stderr]               |
[INFO] [stderr]            14 |     #[token("&", priority = 10)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:17:7
[INFO] [stderr]               |
[INFO] [stderr]            17 |     #[token("&&", priority = 10)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:20:7
[INFO] [stderr]               |
[INFO] [stderr]            20 |     #[regex(r"[^\s\|&]+", priority = 1, callback = |lex| lex.slice())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:59:1
[INFO] [stderr]               |
[INFO] [stderr]            59 | pub struct Parser<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lexer.rs:15:5
[INFO] [stderr]               |
[INFO] [stderr]            15 |     source: &'source Token::Source,
[INFO] [stderr]               |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:65:10
[INFO] [stderr]               |
[INFO] [stderr]            65 | impl<'a> Parser<'a> {
[INFO] [stderr]               |          ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:66:35
[INFO] [stderr]               |
[INFO] [stderr]            66 |     pub fn new(input: &'a str) -> Self {
[INFO] [stderr]               |                                   ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:77:13
[INFO] [stderr]               |
[INFO] [stderr]            77 |     fn peek(&self) -> Option<Result<Token<'a>, ()>> {
[INFO] [stderr]               |             ^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:81:13
[INFO] [stderr]               |
[INFO] [stderr]            81 |     fn next(&mut self) -> Option<Result<Token<'a>, ()>> {
[INFO] [stderr]               |             ^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:87:18
[INFO] [stderr]               |
[INFO] [stderr]            87 |     pub fn parse(&mut self, bp: u8) -> ParseResult<Command<'a>> {
[INFO] [stderr]               |                  ^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `Token<'a>` in the current scope
[INFO] [stderr]              --> src/shell/parsing.rs:67:32
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            67 |         let mut lexer = Token::lexer(input);
[INFO] [stderr]               |                                ^^^^^ variant, associated function, or constant not found in `Token<'_>`
[INFO] [stderr]               |
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:70:9
[INFO] [stderr]               |
[INFO] [stderr]            70 |         Self {
[INFO] [stderr]               |         ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: the method `next` exists for struct `Lexer<'a, Token<'a>>`, but its trait bounds were not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:83:32
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | -------------- doesn't satisfy `Token<'a>: Logos<'_>`
[INFO] [stderr]            ...
[INFO] [stderr]            83 |         self.next = self.lexer.next();
[INFO] [stderr]               |                                ^^^^ method cannot be called on `Lexer<'a, Token<'a>>` due to unsatisfied trait bounds
[INFO] [stderr]               |
[INFO] [stderr]              ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lexer.rs:14:1
[INFO] [stderr]               |
[INFO] [stderr]            14 | pub struct Lexer<'source, Token: Logos<'source>> {
[INFO] [stderr]               | ------------------------------------------------ doesn't satisfy `Lexer<'a, Token<'a>>: Iterator`
[INFO] [stderr]               |
[INFO] [stderr]               = note: the following trait bounds were not satisfied:
[INFO] [stderr]                       `Token<'a>: Logos<'_>`
[INFO] [stderr]                       which is required by `Lexer<'a, Token<'a>>: Iterator`
[INFO] [stderr]            note: the trait `Logos` must be implemented
[INFO] [stderr]              --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lib.rs:44:1
[INFO] [stderr]               |
[INFO] [stderr]            44 | pub trait Logos<'source>: Sized {
[INFO] [stderr]               | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:91:42
[INFO] [stderr]               |
[INFO] [stderr]            91 |         while let Some(Ok(token)) = self.peek() {
[INFO] [stderr]               |                                          ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:96:34
[INFO] [stderr]               |
[INFO] [stderr]            96 | ...                   self.next();
[INFO] [stderr]               |                            ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:99:73
[INFO] [stderr]               |
[INFO] [stderr]            99 | ...                   while let Some(Ok(Token::Word(arg))) = self.peek() {
[INFO] [stderr]               |                                                                   ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:101:38
[INFO] [stderr]                |
[INFO] [stderr]            101 | ...                   self.next();
[INFO] [stderr]                |                            ^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token<'_>` doesn't implement `Debug`
[INFO] [stderr]               --> src/shell/parsing.rs:106:61
[INFO] [stderr]                |
[INFO] [stderr]            106 |                         t => return Err(format!("bad token: {t:?}")),
[INFO] [stderr]                |                                                             ^^^^^ `Token<'_>` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token<'_>`
[INFO] [stderr]            help: consider annotating `Token<'_>` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]              7 + #[derive(Debug)]
[INFO] [stderr]              8 | enum Token<'a> {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:136:26
[INFO] [stderr]                |
[INFO] [stderr]            136 |                     self.next();
[INFO] [stderr]                |                          ^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:142:50
[INFO] [stderr]                |
[INFO] [stderr]            142 | ...                   right: Box::new(self.parse(right_bp)?),
[INFO] [stderr]                |                                            ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:147:50
[INFO] [stderr]                |
[INFO] [stderr]            147 | ...                   right: Box::new(self.parse(right_bp)?),
[INFO] [stderr]                |                                            ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:156:44
[INFO] [stderr]                |
[INFO] [stderr]            156 | ...                   cmds.push(self.parse(right_bp)?);
[INFO] [stderr]                |                                      ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token<'_>` doesn't implement `Debug`
[INFO] [stderr]               --> src/shell/parsing.rs:159:61
[INFO] [stderr]                |
[INFO] [stderr]            159 |                         t => return Err(format!("bad token: {t:?}")),
[INFO] [stderr]                |                                                             ^^^^^ `Token<'_>` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token<'_>`
[INFO] [stderr]            help: consider annotating `Token<'_>` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]              7 + #[derive(Debug)]
[INFO] [stderr]              8 | enum Token<'a> {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell.rs:122:32
[INFO] [stderr]                |
[INFO] [stderr]            122 |         self.exit_code = match parsing::Parser::new(input).parse(0) {
[INFO] [stderr]                |                                ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell.rs:122:32
[INFO] [stderr]                |
[INFO] [stderr]            122 |         self.exit_code = match parsing::Parser::new(input).parse(0) {
[INFO] [stderr]                |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell.rs:122:60
[INFO] [stderr]                |
[INFO] [stderr]            122 |         self.exit_code = match parsing::Parser::new(input).parse(0) {
[INFO] [stderr]                |                                                            ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/shell/execution.rs:27:15
[INFO] [stderr]               |
[INFO] [stderr]            22 |         let mut io = match ctx {
[INFO] [stderr]               |             ------
[INFO] [stderr]               |             |
[INFO] [stderr]               |             `io` calls a custom destructor
[INFO] [stderr]               |             `io` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            27 |         match Self::get_builtin_builder(keyword) { Some(builder) => {
[INFO] [stderr]               |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]               |               |
[INFO] [stderr]               |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            67 |     }
[INFO] [stderr]               |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `io` invokes this custom destructor
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]               = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0507]: cannot move out of `self.next` which is behind a shared reference
[INFO] [stderr]              --> src/shell/parsing.rs:78:9
[INFO] [stderr]               |
[INFO] [stderr]            78 |         self.next
[INFO] [stderr]               |         ^^^^^^^^^ move occurs because `self.next` has type `Option<Result<Token<'_>, ()>>`, which does not implement the `Copy` trait
[INFO] [stderr]               |
[INFO] [stderr]            note: if `Token<'_>` implemented `Clone`, you could clone the value
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stderr]            ...
[INFO] [stderr]            78 |         self.next
[INFO] [stderr]               |         --------- you could clone this value
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 31 previous errors; 1 warning emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            Some errors have detailed explanations: E0277, E0507, E0599.
[INFO] [stderr]            
[INFO] [stderr]            For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr] error: errors present after applying fixes to crate `crsh`
[INFO] [stderr]  --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lexer.rs
[INFO] [stderr]  ::: src/shell.rs
[INFO] [stderr]  ::: src/shell/execution.rs
[INFO] [stderr]  ::: src/shell/parsing.rs
[INFO] [stderr]   = cause: error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]             --> src/shell/parsing.rs:5:36
[INFO] [stderr]              |
[INFO] [stderr]            5 | #[derive(Debug, Copy, Clone, Logos + use<'s>)]
[INFO] [stderr]              |                                    ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]             --> src/shell/parsing.rs:6:3
[INFO] [stderr]              |
[INFO] [stderr]            6 | #[logos(skip r"\s+")]
[INFO] [stderr]              |   ^^^^^
[INFO] [stderr]              |
[INFO] [stderr]              = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]              |
[INFO] [stderr]            7 + #[derive(Logos)]
[INFO] [stderr]            8 | enum Token<'a> {
[INFO] [stderr]              |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]             --> src/shell/parsing.rs:8:7
[INFO] [stderr]              |
[INFO] [stderr]            8 |     #[token("|", priority = 10)]
[INFO] [stderr]              |       ^^^^^
[INFO] [stderr]              |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]              |
[INFO] [stderr]            7 + #[derive(Logos)]
[INFO] [stderr]            8 | enum Token<'a> {
[INFO] [stderr]              |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:11:7
[INFO] [stderr]               |
[INFO] [stderr]            11 |     #[token("||", priority = 10)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:14:7
[INFO] [stderr]               |
[INFO] [stderr]            14 |     #[token("&", priority = 10)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:17:7
[INFO] [stderr]               |
[INFO] [stderr]            17 |     #[token("&&", priority = 10)]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> src/shell/parsing.rs:20:7
[INFO] [stderr]               |
[INFO] [stderr]            20 |     #[regex(r"[^\s\|&]+", priority = 1, callback = |lex| lex.slice())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]             7 + #[derive(Logos)]
[INFO] [stderr]             8 | enum Token<'a> {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:59:1
[INFO] [stderr]               |
[INFO] [stderr]            59 | pub struct Parser<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lexer.rs:15:5
[INFO] [stderr]               |
[INFO] [stderr]            15 |     source: &'source Token::Source,
[INFO] [stderr]               |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:65:10
[INFO] [stderr]               |
[INFO] [stderr]            65 | impl<'a> Parser<'a> {
[INFO] [stderr]               |          ^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:66:35
[INFO] [stderr]               |
[INFO] [stderr]            66 |     pub fn new(input: &'a str) -> Self {
[INFO] [stderr]               |                                   ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:77:13
[INFO] [stderr]               |
[INFO] [stderr]            77 |     fn peek(&self) -> Option<Result<Token<'a>, ()>> {
[INFO] [stderr]               |             ^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:81:13
[INFO] [stderr]               |
[INFO] [stderr]            81 |     fn next(&mut self) -> Option<Result<Token<'a>, ()>> {
[INFO] [stderr]               |             ^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:87:18
[INFO] [stderr]               |
[INFO] [stderr]            87 |     pub fn parse(&mut self, bp: u8) -> ParseResult<Command<'a>> {
[INFO] [stderr]               |                  ^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `Token<'a>` in the current scope
[INFO] [stderr]              --> src/shell/parsing.rs:67:32
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            67 |         let mut lexer = Token::lexer(input);
[INFO] [stderr]               |                                ^^^^^ variant, associated function, or constant not found in `Token<'_>`
[INFO] [stderr]               |
[INFO] [stderr]               = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]               = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                       candidate #1: `Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'a>: Logos<'a>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:70:9
[INFO] [stderr]               |
[INFO] [stderr]            70 |         Self {
[INFO] [stderr]               |         ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'a>` is not implemented for `Token<'a>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: the method `next` exists for struct `Lexer<'a, Token<'a>>`, but its trait bounds were not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:83:32
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | -------------- doesn't satisfy `Token<'a>: Logos<'_>`
[INFO] [stderr]            ...
[INFO] [stderr]            83 |         self.next = self.lexer.next();
[INFO] [stderr]               |                                ^^^^ method cannot be called on `Lexer<'a, Token<'a>>` due to unsatisfied trait bounds
[INFO] [stderr]               |
[INFO] [stderr]              ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lexer.rs:14:1
[INFO] [stderr]               |
[INFO] [stderr]            14 | pub struct Lexer<'source, Token: Logos<'source>> {
[INFO] [stderr]               | ------------------------------------------------ doesn't satisfy `Lexer<'a, Token<'a>>: Iterator`
[INFO] [stderr]               |
[INFO] [stderr]               = note: the following trait bounds were not satisfied:
[INFO] [stderr]                       `Token<'a>: Logos<'_>`
[INFO] [stderr]                       which is required by `Lexer<'a, Token<'a>>: Iterator`
[INFO] [stderr]            note: the trait `Logos` must be implemented
[INFO] [stderr]              --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/logos-0.14.0/src/lib.rs:44:1
[INFO] [stderr]               |
[INFO] [stderr]            44 | pub trait Logos<'source>: Sized {
[INFO] [stderr]               | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:91:42
[INFO] [stderr]               |
[INFO] [stderr]            91 |         while let Some(Ok(token)) = self.peek() {
[INFO] [stderr]               |                                          ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:96:34
[INFO] [stderr]               |
[INFO] [stderr]            96 | ...                   self.next();
[INFO] [stderr]               |                            ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shell/builtin/cd.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             env::set_var("OLDPWD", &sh.env.pwd);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]    = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]    |
[INFO] [stdout] 79 +             // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 80 ~             unsafe { env::set_var("OLDPWD", &sh.env.pwd) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/shell/execution.rs:27:32
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut io = match ctx {
[INFO] [stdout]    |             ------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `io` calls a custom destructor
[INFO] [stdout]    |             `io` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 27 |         if let Some(builder) = Self::get_builtin_builder(keyword) {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 67 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `io` invokes this custom destructor
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]   --> src/shell/execution.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if let Some(builder) = Self::get_builtin_builder(keyword) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^----------------------------------
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]    |
[INFO] [stdout]    = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]   --> src/shell/execution.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |         } else if self.find_on_path(keyword).is_some() {
[INFO] [stdout]    |         ^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]    = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         match Self::get_builtin_builder(keyword) { Some(builder) => {
[INFO] [stdout] 28 |             match builder(args) {
[INFO] [stdout] ...
[INFO] [stdout] 34 |             }
[INFO] [stdout] 35 ~         } _ => if self.find_on_path(keyword).is_some() {
[INFO] [stdout] 36 |             let args = args.iter().map(|s| s.to_string()).collect::<Vec<_>>();
[INFO] [stdout] ...
[INFO] [stdout] 65 |             -1
[INFO] [stdout] 66 ~         }}
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, &'s str, Token<'s>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^
[INFO] [stdout]   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]   = warning: this changes meaning in Rust 2024
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]   = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]   = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos + use<'s>)]
[INFO] [stdout]   |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, &'s str, Token<'s>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^^^^^
[INFO] [stdout]   |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]  --> src/shell/parsing.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos)]
[INFO] [stdout]   |                              ^
[INFO] [stdout]   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]   = warning: this changes meaning in Rust 2024
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]   = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Debug, Copy, Clone, Logos + use<'s>)]
[INFO] [stdout]   |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]              --> src/shell/parsing.rs:99:73
[INFO] [stderr]               |
[INFO] [stderr]            99 | ...                   while let Some(Ok(Token::Word(arg))) = self.peek() {
[INFO] [stderr]               |                                                                   ^^^^ unsatisfied trait bound
[INFO] [stderr]               |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:101:38
[INFO] [stderr]                |
[INFO] [stderr]            101 | ...                   self.next();
[INFO] [stderr]                |                            ^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token<'_>` doesn't implement `Debug`
[INFO] [stderr]               --> src/shell/parsing.rs:106:61
[INFO] [stderr]                |
[INFO] [stderr]            106 |                         t => return Err(format!("bad token: {t:?}")),
[INFO] [stderr]                |                                                             ^^^^^ `Token<'_>` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token<'_>`
[INFO] [stderr]            help: consider annotating `Token<'_>` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]              7 + #[derive(Debug)]
[INFO] [stderr]              8 | enum Token<'a> {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:136:26
[INFO] [stderr]                |
[INFO] [stderr]            136 |                     self.next();
[INFO] [stderr]                |                          ^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:142:50
[INFO] [stderr]                |
[INFO] [stderr]            142 | ...                   right: Box::new(self.parse(right_bp)?),
[INFO] [stderr]                |                                            ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:147:50
[INFO] [stderr]                |
[INFO] [stderr]            147 | ...                   right: Box::new(self.parse(right_bp)?),
[INFO] [stderr]                |                                            ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell/parsing.rs:156:44
[INFO] [stderr]                |
[INFO] [stderr]            156 | ...                   cmds.push(self.parse(right_bp)?);
[INFO] [stderr]                |                                      ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token<'_>` doesn't implement `Debug`
[INFO] [stderr]               --> src/shell/parsing.rs:159:61
[INFO] [stderr]                |
[INFO] [stderr]            159 |                         t => return Err(format!("bad token: {t:?}")),
[INFO] [stderr]                |                                                             ^^^^^ `Token<'_>` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token<'_>`
[INFO] [stderr]            help: consider annotating `Token<'_>` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]              7 + #[derive(Debug)]
[INFO] [stderr]              8 | enum Token<'a> {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell.rs:122:32
[INFO] [stderr]                |
[INFO] [stderr]            122 |         self.exit_code = match parsing::Parser::new(input).parse(0) {
[INFO] [stderr]                |                                ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell.rs:122:32
[INFO] [stderr]                |
[INFO] [stderr]            122 |         self.exit_code = match parsing::Parser::new(input).parse(0) {
[INFO] [stderr]                |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token<'_>: Logos<'_>` is not satisfied
[INFO] [stderr]               --> src/shell.rs:122:60
[INFO] [stderr]                |
[INFO] [stderr]            122 |         self.exit_code = match parsing::Parser::new(input).parse(0) {
[INFO] [stderr]                |                                                            ^^^^^ unsatisfied trait bound
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Logos<'_>` is not implemented for `Token<'_>`
[INFO] [stderr]               --> src/shell/parsing.rs:7:1
[INFO] [stderr]                |
[INFO] [stderr]              7 | enum Token<'a> {
[INFO] [stderr]                | ^^^^^^^^^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning: relative drop order changing in Rust 2024
[INFO] [stderr]              --> src/shell/execution.rs:27:15
[INFO] [stderr]               |
[INFO] [stderr]            22 |         let mut io = match ctx {
[INFO] [stderr]               |             ------
[INFO] [stderr]               |             |
[INFO] [stderr]               |             `io` calls a custom destructor
[INFO] [stderr]               |             `io` will be dropped later as of Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            27 |         match Self::get_builtin_builder(keyword) { Some(builder) => {
[INFO] [stderr]               |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]               |               |
[INFO] [stderr]               |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stderr]               |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stderr]            ...
[INFO] [stderr]            67 |     }
[INFO] [stderr]               |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stderr]               |
[INFO] [stderr]               = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stderr]            note: `io` invokes this custom destructor
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/std/src/os/fd/owned.rs:196:0
[INFO] [stderr]               = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stderr]               = warning: this changes meaning in Rust 2024
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stderr]               = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0507]: cannot move out of `self.next` which is behind a shared reference
[INFO] [stderr]              --> src/shell/parsing.rs:78:9
[INFO] [stderr]               |
[INFO] [stderr]            78 |         self.next
[INFO] [stderr]               |         ^^^^^^^^^ move occurs because `self.next` has type `Option<Result<Token<'_>, ()>>`, which does not implement the `Copy` trait
[INFO] [stderr]               |
[INFO] [stderr]            note: if `Token<'_>` implemented `Clone`, you could clone the value
[INFO] [stderr]              --> src/shell/parsing.rs:7:1
[INFO] [stderr]               |
[INFO] [stderr]             7 | enum Token<'a> {
[INFO] [stderr]               | ^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stderr]            ...
[INFO] [stderr]            78 |         self.next
[INFO] [stderr]               |         --------- you could clone this value
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 31 previous errors; 1 warning emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            Some errors have detailed explanations: E0277, E0507, E0599.
[INFO] [stderr]            
[INFO] [stderr]            For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.68s
[INFO] [stderr] crater-edition-check: crsh v0.0.1 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling crsh v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shell/builtin/cd.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             env::set_var("OLDPWD", &sh.env.pwd);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/shell/builtin/cd.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             env::set_var("OLDPWD", &sh.env.pwd);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `crsh` (bin "crsh") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `crsh` (bin "crsh" test) due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d", kill_on_drop: false }`
[INFO] [stdout] b88a981d49b79d9809b036e89e7e6493087efceb0ad711e7dc645acec392268d
